package com.example.personalcenter;

import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import androidx.lifecycle.ViewModel;
import java.util.ArrayList;
import java.util.List;

/**
 * 首页ViewModel - 管理新闻列表数据
 */
public class HomeViewModel extends ViewModel {
    
    private MutableLiveData<List<NewsItem>> newsListLiveData;
    private List<NewsItem> newsDataSource;

    public HomeViewModel() {
        newsListLiveData = new MutableLiveData<>();
        newsDataSource = new ArrayList<>();
        loadInitialData();
    }

    /**
     * 获取新闻列表LiveData
     */
    public LiveData<List<NewsItem>> getNewsListLiveData() {
        return newsListLiveData;
    }

    /**
     * 初始化加载数据
     */
    private void loadInitialData() {
        newsDataSource.clear();
        newsDataSource.add(new NewsItem("1", "Android开发实战指南",
                "全面介绍Android应用开发的各个方面，包括UI设计、数据存储、网络请求等核心技术。从零基础到进阶，帮助开发者快速掌握Android开发技能。",
                "张三", "2024-01-15 10:30"));
        
        newsDataSource.add(new NewsItem("2", "Kotlin语言特性深度解析",
                "深入剖析Kotlin语言的核心特性，包括协程、扩展函数、高阶函数等。通过实际案例展示Kotlin在Android开发中的优势和最佳实践。",
                "李四", "2024-01-14 14:20"));
        
        newsDataSource.add(new NewsItem("3", "RecyclerView性能优化技巧",
                "分享RecyclerView的性能优化方案，包括ViewHolder复用、DiffUtil使用、图片加载优化等实用技巧，有效提升列表滑动流畅度。",
                "王五", "2024-01-13 09:15"));
        
        newsDataSource.add(new NewsItem("4", "MVVM架构设计模式详解",
                "详细讲解MVVM架构在Android中的应用，涵盖ViewModel、LiveData、DataBinding等组件的使用方法和设计思想。",
                "赵六", "2024-01-12 16:45"));
        
        newsDataSource.add(new NewsItem("5", "Jetpack组件库完全指南",
                "全面介绍Android Jetpack组件库，包括Navigation、Room、WorkManager等，帮助开发者构建高质量的现代化应用。",
                "孙七", "2024-01-11 11:00"));
        
        newsDataSource.add(new NewsItem("6", "Material Design实战应用",
                "深入探讨Material Design设计规范在Android应用中的实际应用，包括主题定制、动画效果、交互设计等方面。",
                "周八", "2024-01-10 15:30"));
        
        newsDataSource.add(new NewsItem("7", "Android网络编程最佳实践",
                "分享Android网络编程的最佳实践，包括Retrofit使用、OkHttp配置、网络安全等关键技术点和常见问题解决方案。",
                "吴九", "2024-01-09 13:20"));
        
        newsDataSource.add(new NewsItem("8", "Fragment生命周期深度剖析",
                "详细分析Fragment的生命周期，解释各个回调方法的执行时机和使用场景，帮助开发者避免常见的Fragment使用陷阱。",
                "郑十", "2024-01-08 10:10"));
        
        newsListLiveData.setValue(new ArrayList<>(newsDataSource));
    }

    /**
     * 刷新数据（模拟网络请求）
     */
    public void refreshData() {
        // 模拟网络延迟
        new android.os.Handler().postDelayed(() -> {
            // 刷新数据时可以添加新数据或更新现有数据
            loadInitialData();
        }, 1000);
    }

    /**
     * 删除指定新闻项
     */
    public void deleteNewsItem(NewsItem item) {
        newsDataSource.remove(item);
        newsListLiveData.setValue(new ArrayList<>(newsDataSource));
    }
}
